Ereignisse
Bemerkungen zu Ereignissen im ColumnTree
Bevor die Ereignisse für den ColumnTree registriert werden, sollte die Methode GET_REGISTERED_EVENTS aufgerufen werden.
Setzt man nämlich “einfach” das Event “Item_Double_Click”, dann wird evtl. auf einmal die Ordnerstruktur nicht mehr angezeigt! Durch das explizite Setzen mittels SET_REGISTERED_EVENTS wird das Event “EXPAND_NO_CHILDREN” gelöscht…
Eine Registrierung sollte also so z.B. aussehen:
*** data definition
DATA lt_events TYPE cntl_simple_events.
DATA ls_event TYPE cntl_simple_event.
*** Get already registered events
CALL METHOD gr_tree->get_registered_events
IMPORTING
events = lt_events.
*** define the events which will be passed to the backend
ls_event-eventid = cl_gui_column_tree=>eventid_link_click.
APPEND ls_event TO lt_events.
ls_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
APPEND ls_event TO lt_events.
*** set events
CALL METHOD gr_tree->set_registered_events
EXPORTING
events = lt_events.
*** set Handler
SET HANDLER lcl_treereceiver=>handle_link_click FOR gr_tree.
SET HANDLER lcl_treereceiver=>handle_item_double_click FOR gr_tree.
Doppelte Events sind nicht schlimm, solange APPL_EVENT identisch ist, also das Kennzeichen das steuert, ob Events einen Funktionscode auslösen.
Besser wäre es sicherlich, vorher zu prüfen, ob das Ereignis bereits registriert ist.
- Meine Eclipse-Plugins - 22. November 2024
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024